package DesignPattern.RuleEngine;
/**
 *
 * 1）facts表示当前被传入的key:value结构的参数,即输入
 * 2）rule就是一整个规则
 * 3）Condition就是rule的判断条件
 * 4）action就是满足Condition以后需要触发的动作
 * Rule = Condition + Action
 *
 *
 * 规则引擎是一种软件工具或系统，用于管理和执行规则。
 * 规则通常表示为条件-动作语句，
 * 规则引擎用于评估这些条件并执行相关的动作。
 * */
public class Main {
    public static void main(String[] args) {
        RuleEngine ruleEngine = new RuleEngine();

        Expression expression = new Expression();
        expression.setX(10);
        expression.setY(5);
        expression.setOperator(Operator.ADD);

        Result result = ruleEngine.process(expression);
        if (result != null) {
            System.out.println("Result: " + result.getResult());
        }
    }
}
